#include <stdio.h>
#include <time.h>

#define LOOP_COUNT 100000000

const char * GetMimeType(const char*, int);

int main()
{
    static char *mime_list[] = 
    {
        ".ai",      ".aif",     ".aifc",    ".aiff",    ".arj",
        ".asc",     ".asf",     ".asx",     ".au",      ".avi",
        ".bat",     ".bcpio",   ".bin",     ".c",       ".cc",
        ".ccad",    ".cdf",     ".class",   ".cod",     ".com",
        ".cpio",    ".cpt",     ".csh",     ".css",     ".dcr",
        ".deb",     ".dir",     ".dl",      ".dms",     ".doc",
        ".drw",     ".dvi",     ".dwg",     ".dxf",     ".dxr",
        ".eps",     ".etx",     ".exe",     ".ez",      ".f",
        ".f90",     ".fli",     ".flv",     ".gif",     ".gl",
        ".gtar",    ".gz",      ".hdf",     ".hh",      ".hqx",
        ".h",       ".htm",     ".html",    ".ice",     ".ief",
        ".iges",    ".igs",     ".ips",     ".ipx",     ".jad",
        ".jar",     ".jpeg",    ".jpe",     ".jpg",     ".js",
        ".kar",     ".latex",   ".lha",     ".lsp",     ".lzh",
        ".m",       ".m3u",     ".man",     ".me",      ".mesh",
        ".mid",     ".midi",    ".mif",     ".mime",    ".movie",
        ".mov",     ".mp2",     ".mp3",     ".mpeg",    ".mpe",
        ".mpga",    ".mpg",     ".ms",      ".msh",     ".nc",
        ".oda",     ".ogg",     ".ogm",     ".pbm",     ".pdb",
        ".pdf",     ".pgm",     ".pgn",     ".pgp",     ".pl",
        ".pm",      ".png",     ".pnm",     ".pot",     ".ppm",
        ".pps",     ".ppt",     ".ppz",     ".pre",     ".prt",
        ".ps",      ".qt",      ".ra",      ".ram",     ".rar",
        ".ras",     ".ras",     ".rgb",     ".rm",      ".roff",
        ".rpm",     ".rtf",     ".rtx",     ".scm",     ".set",
        ".sgml",    ".sgm",     ".sh",      ".shar",    ".silo",
        ".sit",     ".skd",     ".skm",     ".skp",     ".skt",
        ".smi",     ".smil",    ".snd",     ".sol",     ".spl",
        ".src",     ".step",    ".stl",     ".stp",     ".sv4cpio",
        ".sv4crc",  ".svg",     ".swf",     ".t",       ".tar",
        ".tcl",     ".tex",     ".texi",    ".texinfo", ".tgz",
        ".tiff",    ".tif",     ".tr",      ".tsi",     ".tsp",
        ".tsv",     ".txt",     ".unv",     ".ustar",   ".vcd",
        ".vda",     ".viv",     ".vivo",    ".vrml",    ".vsix",
        ".wav",     ".wax",     ".wiki",    ".wma",     ".wmv",
        ".wmx",     ".wrl",     ".wvx",     ".xbm",     ".xlc",
        ".xll",     ".xlm",     ".xls",     ".xlw",     ".xml",
        ".xpm",     ".xwd",     ".xyz",     ".zip"
    };

    double start ,end;
    start = clock();
    int a = 0;
    while(a != LOOP_COUNT)
    {
        char **list_ptr = mime_list;
        for(int b = 0; b != sizeof(mime_list)/sizeof(mime_list[0]) && a != LOOP_COUNT; a++, b++, list_ptr++)
            GetMimeType(*list_ptr, strlen(*list_ptr));
    }
    end = clock();

    start = (end - start) / CLOCKS_PER_SEC;
    end = a / start;
    
    printf("time %0.3f s\n"
           "count %d n\n"
           "speed %0.0f n/sec\n",
           start, a, end);
    return 0;
}
